WooCommerce 中基于订单总额的运费折扣百分比

Percentage discount on shipping based on order total in WooCommerce

我正在尝试通过插件或 functions.php 找到一种方法,了解如何在订单金额介于 25 英镑和 50 英镑之间时仅将运费打折 50%。

我正在使用“在 Woocommerce 中为本地取货运输方式设置百分比折扣 ”,它根据送货方式打折,但我希望它能对所有送货方式打折,因为我们有很多送货方式,而且它没有最低订购量的规定。

  • 您可以使用 woocommerce_package_rates 钩子

  • 如果订单金额在 25 英镑到 50 英镑之间,这将为运费提供 50% 的折扣。

function filter_woocommerce_package_rates( $rates, $package ) {
    /* Settings */
    $min = 25;
    $max = 50;
    $discount_percent = 50;

    // Get cart total
    $cart_total = WC()->cart->cart_contents_total;

    // Condition
    if ( $cart_total >= $min && $cart_total <= $max ) {
        // (Multiple)
        foreach ( $rates as $rate_key => $rate ) {
            // Get rate cost            
            $cost = $rates[$rate_key]->cost;
            
            // Set rate cost
            $rates[$rate_key]->cost = $cost - ( ( $cost * $discount_percent ) / 100 );
        }
    }

    return $rates;
}
add_filter( 'woocommerce_package_rates', 'filter_woocommerce_package_rates', 10, 2 );